package com.miyu.system.service.book;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 系统书服务
 * @author miyu
 * @date 2022/11/08
 */
public interface SysBookService {
    /**
     * 后端管理书籍查询
     * @param param 参数
     * @return {@link JSONArray}
     */
    JSONArray querySysBook(JSONObject param);

    /**
     * 查询系统书细节
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject querySysBookDetail(JSONObject param);

    /**
     * 查询系统书章
     * @param param 参数
     * @return {@link JSONArray}
     */
    JSONArray querySysBookChapter(JSONObject param);

    /**
     * 查询系统书读者
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject querySysBookReader(JSONObject param);

    /**
     * 书籍采集功能
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject collectBook(JSONObject param);

    /**
     * 查询书（爬虫）
     * @param param 参数
     * @return {@link JSONArray}
     */
    JSONArray queryBook(JSONObject param);

    /**
     * 查询书详情（爬虫）
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject queryBookDetail(JSONObject param);

    /**
     * 查询书章(爬虫)
     * @param param 参数
     * @return {@link JSONArray}
     */
    JSONArray queryBookChapter(JSONObject param);

    /**
     * 查询书阅读(爬虫)
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject queryBookReader(JSONObject param);

    /**
     * 规则校验取值
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject checkBookRule(JSONObject param);

    /**
     * 收集书保存
     * @return {@link JSONObject}
     */
    JSONObject collectBookSave();

    /**
     * 缓存书籍定时任务 不用再手动执行
     * @param param 参数
     * @return {@link JSONObject}
     */
    JSONObject saveCacheBookTask(JSONObject param);

    /**
     * 收集图书阅读器缓存
     * @return {@link JSONObject}
     */
    JSONObject collectBookReaderCache();
}
